import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import router from '@/router'
import { getToken } from '@/utils/auth'

// create an axios instance
// 创建axios实例
// const service = axios.create({
//   // 基地址
//   baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
//   // withCredentials: true, // send cookies when cross-domain requests
//   //请求超时时间
//   timeout: 5000 // request timeout
// })

// // request interceptor


const service = axios.create({
  // baseURL:'http://ihrm-java.itheima.net', // 设置axios请求的基础的基础地址
  // baseURL: process.env.VUE_APP_BASE_API,
  // 设置请求时间5秒超时
  timeout:5000 
})
export default service

// // 请求拦截器
service.interceptors.request.use(
  config => {
  console.log('服务器请求的',config);
  const token = store.state.user.token
  if(token){
    config.headers.Authorization=`Bearer ${token}`
  }
    return config
  },
  error => {

    return Promise.reject(error)
  }
)

// 响应拦截器
// response interceptor
service.interceptors.response.use(
  response => {
    console.log('后端返回来的数据',response);
    
    if(response.data.success === false){
      // 抛出错误信息
      return Promise.reject(new Error(response.data.message))
    } else{
      return response.data
    }
  },
  error => {
    // 1.发ajax时，状态码不是2打头
    // 2.网络问题：超时，断网
   console.dir(error);
   if(error.response.data.code === 10002){
    // 1.删除本地信息
    store.dispatch('user/userLogout')
    // 2.跳转，重新登录
    router.push('/login?return_url=' + router.currentRoute.path)
   }
    return Promise.reject(error)
  }
)

